package www.bancodelanacion.intranet.prestamos.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import www.bancodelanacion.intranet.prestamos.entidad.PlazaDTO;
import www.bancodelanacion.intranet.prestamos.util.MySqlDBConn;

public class PlazaDAOImpl implements PlazaDAO{

	@Override
	public int insertaPlaza(PlazaDTO bean) throws SQLException {
		Connection conn = null;
		PreparedStatement pstm = null;
		try {
				conn = new MySqlDBConn().getConnection();
				String sql ="insert into tb_plaza values(?,?,?,?,?,?,?,?,?,?)";
				pstm = conn.prepareStatement(sql);
				pstm.setString(1,bean.getCodigoplaza());
				pstm.setString(2,bean.getFecha());
				pstm.setBytes(3,bean.getConstituciondelbanco());
				pstm.setBytes(4,bean.getDeclaracionjurada());
				pstm.setBytes(5,bean.getRepresentantelegal());
				pstm.setString(6,bean.getDescripcion());
				pstm.setString(7,bean.getCodigocliente());
				pstm.setString(8,bean.getCodigoestado());
				pstm.setString(9,bean.getCodigotrabajador());
				pstm.setString(10,bean.getCodigoifi());
				pstm.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(pstm!= null)pstm.close();
				if(conn!= null)conn.close();
			} catch (Exception e2) {}
		}
		return -1;
	}

	@Override
	public int actualizaPlaza(PlazaDTO bean) throws SQLException {
		Connection conn = null;
		PreparedStatement pstm = null;
		try {
				conn = new MySqlDBConn().getConnection();
				String sql ="update tb_plaza set Fecha=?, Constitucion_del_Banco=?, Declaracion_Jurada=?, Representacion_Legal=?, Descripcion=?, Codigo_Cliente=?, Codigo_Ifi=?, Codigo_Estado=?, Codigo_Trabajador=? where Codigo_Plaza=?";
				pstm = conn.prepareStatement(sql);
				pstm.setString(1,bean.getFecha());
				pstm.setBytes(2,bean.getConstituciondelbanco());
				pstm.setBytes(3,bean.getDeclaracionjurada());
				pstm.setBytes(4,bean.getRepresentantelegal());
				pstm.setString(5,bean.getDescripcion());
				pstm.setString(6,bean.getCodigocliente());
				pstm.setString(7,bean.getCodigoifi());
				pstm.setString(8,bean.getCodigoestado());
				pstm.setString(9,bean.getCodigotrabajador());
				return pstm.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(pstm!= null)pstm.close();
				if(conn!= null)conn.close();
			} catch (Exception e2) {}
		}
		return -1;
	}

	@Override
	public PlazaDTO buscaPlaza(String idPlaza) throws SQLException {
		Connection conn = null;
		PreparedStatement pstm = null;
		ResultSet rs = null;
		PlazaDTO dto = new PlazaDTO();
		try {
				conn = new MySqlDBConn().getConnection();
				String sql ="select * from tb_plaza where Codigo_Plaza=?";
				pstm = conn.prepareStatement(sql);
				pstm.setString(1, idPlaza);
				rs = pstm.executeQuery();
				if(rs.next()){
					dto.setFecha(rs.getString("Fecha"));
					dto.setConstituciondelbanco(rs.getBytes("Constitucion_del_Banco"));
					dto.setDeclaracionjurada(rs.getBytes("Declaracion_Jurada"));
					dto.setRepresentantelegal(rs.getBytes("Representacion_Legal"));
					dto.setDescripcion(rs.getString("Descripcion"));
					dto.setCodigocliente(rs.getString("Codigo_Cliente"));
					dto.setCodigoifi(rs.getString("Codigo_Ifi"));
					dto.setCodigoestado(rs.getString("Codigo_Estado"));
					dto.setCodigotrabajador(rs.getString("Codigo_Trabajador"));
				}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(rs!= null)rs.close();
				if(pstm!= null)pstm.close();
				if(conn!= null)conn.close();
			} catch (Exception e2) {}
		}
		return dto;
	}

	@Override
	public ArrayList<PlazaDTO> listaPlaza() throws SQLException {
		Connection conn = null;
		PreparedStatement pstm = null;
		ResultSet rs = null;
		ArrayList<PlazaDTO> data = new ArrayList<PlazaDTO>();
		try {
				conn = new MySqlDBConn().getConnection();
				String sql ="select * from tb_plaza";
				pstm = conn.prepareStatement(sql);
				rs = pstm.executeQuery();
				PlazaDTO dto = null;
				while(rs.next()){
					dto = new PlazaDTO();
					dto.setFecha(rs.getString("Fecha"));
					dto.setConstituciondelbanco(rs.getBytes("Constitucion_del_Banco"));
					dto.setDeclaracionjurada(rs.getBytes("Declaracion_Jurada"));
					dto.setRepresentantelegal(rs.getBytes("Representacion_Legal"));
					dto.setDescripcion(rs.getString("Descripcion"));
					dto.setCodigocliente(rs.getString("Codigo_Cliente"));
					dto.setCodigoifi(rs.getString("Codigo_Ifi"));
					dto.setCodigoestado(rs.getString("Codigo_Estado"));
					dto.setCodigotrabajador(rs.getString("Codigo_Trabajador"));
					data.add(dto);
				}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(rs!= null)rs.close();
				if(pstm!= null)pstm.close();
				if(conn!= null)conn.close();
			} catch (Exception e2) {}
		}
		return data;
	}

	@Override
	public String codigogen() {
		String cod=null;
		Connection conn = null;
		
		try {
			conn = new MySqlDBConn().getConnection();
			Statement s=conn.createStatement();
			ResultSet rs=s.executeQuery(
		"select Codigo_Plaza from tb_plaza order by Codigo_Plaza desc limit 1");

			if(rs.next()){
				 cod=rs.getString(1);
			}
			}catch (SQLException f) {
				JOptionPane.showMessageDialog(null,"SQL PROBLEM");
			}
		
			return  cod;
	}

}
